﻿#pragma once
#ifndef GLOBAL_H_
#define GLOBAL_H_
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#include <stdlib.h>
#define AllLine 3//线路条数
//本系统只记录一周之内的航班，过期则删除
enum Week{ Sun, Mon, Tues, Wed , Thurs , Fri , Sat  };
typedef struct Level
{
	int totalNum;
	int leftNum;
}Level;
typedef struct waitingNode
{
	char name[20];
	char idCard[20];	//身份证号码
	int level;	//所需舱位等级
	int wantNum;//所需票量
	struct waitingNode* next;
}waitingNode,*waitingList;

typedef struct BookNode
{
	char name[20];
	char idCard[20];	//身份证号码
	int TicketNum;//已订票数量
	int level;	//舱位等级（1,2,3）//作为实例程序，本程序不针对不同的舱位等级开设不同的票数
	struct BookNode* next;
}BookNode,*BookedList;
typedef struct Flight
{
	int number;		//航班号
	int planeID;	//飞机号
	int startDay;//起飞日期（周几）
	int totalNum;//乘客最大人数
	int leftNum;	//总余票量
	Level level[3];//三个等级的票的总量与余量
	BookedList booked;		//已订票名单(线性表)（无头单链表）
	waitingList front;	//后补名单（队列）（队头）
	waitingList rear;	//对尾
	struct Flight* next;
}Flight,*pFlight;	//按起飞日期有序
typedef struct
{
	char beg[20];//起点站
	char dest[20];//终点站
	int workDay[7];//工作日期（有航班的日期）
	pFlight flights;//现有航班
}Airline;		
typedef struct
{
	Airline airline[3];//按终点站名有序
	int size;		//航线的数量（定为3）
}System,*Sys;

#endif 